博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript实现拖拽预览,AJAX小文件上传
阅读量:5101 次
发布时间:2019-06-13

本文共 2042 字,大约阅读时间需要 6 分钟。

本地上传,提前预览(图片,视频)

1.html中div标签预览显示,button标签触发上传事件。

将图片拖拽到此
2.禁止浏览器打开文件行为

document.addEventListener("drop",function(e){  //拖离 	e.preventDefault();    })document.addEventListener("dragleave",function(e){  //拖后放 	e.preventDefault();    })document.addEventListener("dragenter",function(e){  //拖进	e.preventDefault();    })document.addEventListener("dragover",function(e){  //拖来拖去  	e.preventDefault();    })

3.拖拽,预览文件

var box = document.getElementById('drop_area'); //拖拽区域   box.addEventListener("drop",function(e){         	var fileList = e.dataTransfer.files; //获取文件对象  	//检測是否是拖拽文件到页面的操作          	if(fileList.length == 0){              		return false;          	}           	//拖拉图片到浏览器,能够实现预览功能  	//规定视频格式	Array.prototype.S=String.fromCharCode(2);	Array.prototype.in_array=function(e){		var r=new RegExp(this.S+e+this.S);		return (r.test(this.S+this.join(this.S)+this.S));	};	var video_type=["video/mp4","video/ogg"];		//创建一个url连接,供src属性引用	var fileurl = window.URL.createObjectURL(fileList[0]);   				if(fileList[0].type.indexOf('image') === 0){  //假设是图片		var str="";		document.getElementById('drop_area').innerHTML=str; 					}else if(video_type.in_array(fileList[0].type)){   //假设是规定格式内的视频                  		var str="
"; document.getElementById('drop_area').innerHTML=str; }else{ //其它格式,输出文件名称 //alert("不预览"); var str="文件名称字:"+fileList[0].name; document.getElementById('drop_area').innerHTML=str; } resultfile = fileList[0]; },false);
4.ajax上传

function xhr2(){	var xhr = new XMLHttpRequest();//第一步	//新建一个FormData对象	var formData = new FormData(); //++++++++++	//追加文件数据	formData.append('file', resultfile);	//post方式	xhr.open('POST', 'xhr2.php'); //第二步骤	//发送请求	xhr.send(formData);  //第三步骤	//ajax返回	xhr.onreadystatechange = function(){ //第四步    if ( xhr.readyState == 4 && xhr.status == 200 ) {      console.log( xhr.responseText );		    }  };	//设置超时时间	xhr.timeout = 10000;	xhr.ontimeout = function(event){    alert('请求超时!');  }			}
5.php保存文件

>

转载于:https://www.cnblogs.com/gccbuaa/p/7071287.html

你可能感兴趣的文章
数值变量分类问题相关原理知识
查看>>
[比赛]2015/12/25BNU新生赛
查看>>
docker+elasticsearch的安装
查看>>
chrome浏览器调试css
查看>>
BZOJ(1) 1003 [ZJOI2006]物流运输
查看>>
getX,getRawX,getWidth,getTranslationX等的区别
查看>>
一道不知道哪里来的贪心题
查看>>
Blender插件之Panel
查看>>
工具类网站收藏
查看>>
python 遍历
查看>>
CSS 技巧积累
查看>>
Search Insert Position - LeetCode
查看>>
C++输入输出流学习笔记
查看>>
Sqlserver2014 迁移数据库
查看>>
TAR 命令
查看>>
【菜鸟做水题】: 杭电1004
查看>>
MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?...
查看>>
我最宏大的个人愿望
查看>>
北漂周记--第5记--拼命编程
查看>>
比赛总结一
查看>>